Данная константа позволяет Вам определить как компонуется MFC DLL статически или динамически. Давайте установим статическую компоновку.

И запустим нашу программу:
// atest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "afxwin.h"
#include "iostream.h"
void main()
{
#if defined _AFXDLL
cout << "dinamic" << endl;
#else
cout << "static" << endl;
#endif
}
Результат будет таким:
static Press any key to continue
Переключимся на dinamic:

И запустим опять:
dinamic Press any key to continue
Вы спросите есть ли разница для программиста. Есть как ни странно. Вот такой код можно увидеть в DLL:
#ifndef _AFXDLL AFX_MANAGE_STATE(AfxGetStaticModuleState()); #endif
При создании DLL просто или расширений MFC необходимо по разному строить программный код. Но и в EXE при инициализации, допустим библиотеки CTL3D32.DLL, она разная в зависимости от того, как используется MFC:
#ifdef _AFXDLL Enable3dControls( ); #else Enable3dControlsStatic( ); #endif